A storage network environment may provide clients with access to user data stored across one or more storage devices. For example, the storage network environment may comprise one or more storage filers (e.g., storage controllers, nodes, etc.) configured to provide clients with access to user data stored within storage devices. A first storage filer may store user data within a first volume hosted by the first storage filer. The user data may be accessible through a file system associated with the first volume. The user data may be replicated into a second volume hosted by a second storage filer. Thus, if the first storage filer fails, then the second storage filer may provide clients with access to the replicated user data within the second volume. Physical replication may be used to replicate data blocks from the first volume to the second volume. For example, a baseline transfer may be performed to replicate the data blocks from the first volume to the second volume. Thereafter, incremental transfers may be performed to replicate changes to data blocks from the first volume to the second volume, as opposed to replicating the entire set of data blocks of the first volume. In this way, incremental transfers may improve the efficiency of replication and reduce network bandwidth utilization. Physical replication may utilize snapshots corresponding to point in time representations of the content of files and directories within the file system of the first volume. For example, a snapshot of the file system of the first volume may be compared to a subsequent snapshot of the file system of the first volume for identifying user data that has changed since a point in time at which the snapshot was captured and a subsequent point in time at which the subsequent snapshot was captured.
An active map may be maintained for the file system. The active map may represent the vacancy of data blocks for the file system. Snapshot data block ownership may be recorded by updating entries within an active map of a snapshot. The active map may comprise a bitmap where a first value, such as “0”, indicates that a corresponding data block is not being used by the snapshot (e.g., a block number of the data block is not allocated to the snapshot) and a second value, such as “1”, indicates that the data block is being used by the snapshot (e.g., the block number is allocated to the snapshot). In this way, snapshots may have active maps that indicate which data blocks are allocated to such snapshots. A summary map is used to describe allocated data blocks and available data blocks of an entire volume based upon snapshots of the volume. For example, the summary map may comprise a logical OR bitmap corresponding to a logical OR operation of active maps of snapshots. The summary map may be used to identify data blocks that are in use by snapshots so as to mitigate overwriting such data blocks.
As snapshots are deleted at the first storage filer, data blocks may become unused until subsequently used for other data such as a subsequent snapshot. It may be advantageous to reclaim corresponding unused data blocks at the second storage filer. Accordingly, a block reclamation scanner may walk the entire file system of the second storage filer to identify unused data blocks. The block reclamation scanner may be used after an incremental transfer of new data blocks. Performing an additional separate traversal of the file system of the second storage filer may waste time and/or computing resources that may otherwise be used for other purposes such as providing clients with access to user data.